home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer: Getting Started / Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin / pc / mac / bonus / peter_le / finger_1 / tokens / numsubs.p < prev    next >
Text File  |  1991-11-26  |  1KB  |  62 lines

  1. unit NumSubs;
  2.  
  3. { ⌐1991 Quinn "The Eskimo" }
  4.  
  5. interface
  6.  
  7. {$ifc undefined THINK_Pascal}
  8.     uses
  9.         Types;
  10. {$endc}
  11.  
  12.     type
  13.         anon_str = string[15];
  14.  
  15.     function DecStr (n: longint): anon_str;
  16.  
  17.     function HexN (n: integer): char;
  18.     function HexB (n: integer): anon_str;
  19.     function HexW (n: integer): anon_str;
  20.     function HexL (n: univ longint): anon_str;
  21.  
  22. implementation
  23.  
  24. {$ifc undefined THINK_Pascal}
  25.     uses
  26.         Packages;
  27. {$endc}
  28.  
  29.     function DecStr (n: longint): anon_str;
  30.         var
  31.             res: Str255;
  32.     begin
  33.         NumToString(n, res);
  34.         DecStr := res;
  35.     end; { DecStr }
  36.  
  37.     function HexN (n: integer): char;
  38.     begin
  39.         if n >= 10 then begin
  40.             HexN := chr(n - 10 + ord('A'));
  41.         end
  42.         else begin
  43.             HexN := chr(n + ord('0'));
  44.         end; (* if *)
  45.     end; (* HexN *)
  46.  
  47.     function HexB (n: integer): anon_str;
  48.     begin
  49.         HexB := concat(HexN(band(bsr(n, 4), $F)), HexN(band(n, $F)));
  50.     end; (* HexB *)
  51.  
  52.     function HexW (n: integer): anon_str;
  53.     begin
  54.         HexW := concat(HexB(band(bsr(n, 8), $FF)), HexB(band(n, $FF)));
  55.     end; (* HexW *)
  56.  
  57.     function HexL (n: univ longint): anon_str;
  58.     begin
  59.         HexL := concat(HexW(HiWrd(n)), HexW(LoWrd(n)));
  60.     end; (* HexL *)
  61.  
  62. end. { NumSubs }